package AI;
import GAME.*;
import TDALista.*;

import java.awt.*;

import javax.swing.*;
public class fondoAI extends Thread {
	protected game juego;
	protected PositionList<JLabel> nuves;
	
	public fondoAI(game j){
		juego=j;
		nuves=new DoubleLinkedList<JLabel>();
	}
	/**
	 * Metodo donde se crean nuves y se insertar en el juego para representar un fondo animado, la creacion de nuves se hace de forma aleatoria.
	 */
	public void run(){
		int variacion=6;
		JLabel aux;
		int x = (int) ((Math.random()*50000%(juego.getWidth()/2))+1);
		while(juego.getplayer().isalive()){
			try {
				Thread.sleep(65);
			} catch (InterruptedException e) {}
			int numAleatorio = (int) (Math.random()*170+1);
			if(numAleatorio==1){
				
				aux=new JLabel();
				aux.setBounds(juego.getWidth()-200,-100,200,100);
				aux.setIcon(new ImageIcon(getClass().getClassLoader().getResource("resources/nuve1.png")));
				nuves.addLast(aux);				
				juego.getpanelfondo().add(aux);
				
			}
			if(numAleatorio==2){
				
				aux=new JLabel();
				aux.setBounds(juego.getWidth()/2,-100,200,100);
				aux.setIcon(new ImageIcon(getClass().getClassLoader().getResource("resources/nuve2.png")));
				nuves.addLast(aux);				
				juego.getpanelfondo().add(aux);
				
			}
			if(numAleatorio==3){
				
				aux=new JLabel();
				aux.setBounds(0,-100,200,100);
				aux.setIcon(new ImageIcon(getClass().getClassLoader().getResource("resources/nuve3.png")));
				nuves.addLast(aux);				
				juego.getpanelfondo().add(aux);
			}
			
			for(Position<JLabel> p:nuves.positions()){
				if(p.element().getY()>juego.getHeight())
					try {
						nuves.remove(p);
					} catch (InvalidPositionException e) {}
				else
					p.element().setLocation(p.element().getX(),p.element().getY()+variacion);
			}
		}
	}
}
